package cn.meye11.crm.domain.query;

import java.util.Date;

import cn.meye11.crm.common.Page;
import cn.meye11.crm.common.RegexUtils;
import lombok.*;

import javax.validation.constraints.Pattern;
import java.io.Serializable;
import java.time.LocalDateTime;

/**
 * (User)查询类
 *
 * @author makejava
 * @since 2023-11-16 14:47:59
 */
@ToString(callSuper = true)
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
//@ApiModel("")
public class UserQuery extends Page implements Serializable {

    private static final long serialVersionUID = -99903471118393134L;
    
    /*
     * id(可以传入一组id，以逗号分隔)
     */
    @Pattern(regexp = RegexUtils.Type.ONLY_NUMBER_OR_EMPTY, message = "只能为数字以逗号分割")
    private String id;
    //@ApiModelProperty(value = "姓名 精确查")
    private String name;
    //@ApiModelProperty(value = "姓名 模糊查")
    private String nameLike;
    //@ApiModelProperty(value = "姓名 在列表中 逗号分割")
    private String nameIn;
    //@ApiModelProperty(value = "姓名 不在列表中 逗号分割")
    private String nameNotIn;
    //@ApiModelProperty(value = "用户名 精确查")
    private String userName;
    //@ApiModelProperty(value = "用户名 模糊查")
    private String userNameLike;
    //@ApiModelProperty(value = "用户名 在列表中 逗号分割")
    private String userNameIn;
    //@ApiModelProperty(value = "用户名 不在列表中 逗号分割")
    private String userNameNotIn;
    //@ApiModelProperty(value = "密码 精确查")
    private String password;
    //@ApiModelProperty(value = "密码 模糊查")
    private String passwordLike;
    //@ApiModelProperty(value = "密码 在列表中 逗号分割")
    private String passwordIn;
    //@ApiModelProperty(value = "密码 不在列表中 逗号分割")
    private String passwordNotIn;
    //@ApiModelProperty(value = "手机 精确查")
    private String mobile;
    //@ApiModelProperty(value = "手机 模糊查")
    private String mobileLike;
    //@ApiModelProperty(value = "手机 在列表中 逗号分割")
    private String mobileIn;
    //@ApiModelProperty(value = "手机 不在列表中 逗号分割")
    private String mobileNotIn;
    //@ApiModelProperty(value = "邮箱 精确查")
    private String mail;
    //@ApiModelProperty(value = "邮箱 模糊查")
    private String mailLike;
    //@ApiModelProperty(value = "邮箱 在列表中 逗号分割")
    private String mailIn;
    //@ApiModelProperty(value = "邮箱 不在列表中 逗号分割")
    private String mailNotIn;
    //@ApiModelProperty(value = "地址 精确查")
    private String address;
    //@ApiModelProperty(value = "地址 模糊查")
    private String addressLike;
    //@ApiModelProperty(value = "地址 在列表中 逗号分割")
    private String addressIn;
    //@ApiModelProperty(value = "地址 不在列表中 逗号分割")
    private String addressNotIn;
    //@ApiModelProperty(value = "性别 精确查")
    private String sex;
    //@ApiModelProperty(value = "性别 模糊查")
    private String sexLike;
    //@ApiModelProperty(value = "性别 在列表中 逗号分割")
    private String sexIn;
    //@ApiModelProperty(value = "性别 不在列表中 逗号分割")
    private String sexNotIn;
    //@ApiModelProperty(value = "生日 精确查")
    private LocalDateTime birthday;
    //@ApiModelProperty(value = "注册日期 精确查")
    private Date registrationDate;
    //@ApiModelProperty(value = "标签 精确查")
    private String label;
    //@ApiModelProperty(value = "标签 模糊查")
    private String labelLike;
    //@ApiModelProperty(value = "标签 在列表中 逗号分割")
    private String labelIn;
    //@ApiModelProperty(value = "标签 不在列表中 逗号分割")
    private String labelNotIn;
    //@ApiModelProperty(value = "创建人 精确查")
    private String createdBy;
    //@ApiModelProperty(value = "创建人 模糊查")
    private String createdByLike;
    //@ApiModelProperty(value = "创建人 在列表中 逗号分割")
    private String createdByIn;
    //@ApiModelProperty(value = "创建人 不在列表中 逗号分割")
    private String createdByNotIn;
    //@ApiModelProperty(value = "最后修改人 精确查")
    private String modifiedBy;
    //@ApiModelProperty(value = "最后修改人 模糊查")
    private String modifiedByLike;
    //@ApiModelProperty(value = "最后修改人 在列表中 逗号分割")
    private String modifiedByIn;
    //@ApiModelProperty(value = "最后修改人 不在列表中 逗号分割")
    private String modifiedByNotIn;
    /*
     * 开始时间与结束时间
     */
    //@ApiModelProperty(value = "开始时间", notes = "yyyy-MM-dd HH:mm:ss", example = "2020-01-01 00:00:00")
    private LocalDateTime start;
    //@ApiModelProperty(value = "结束时间", notes = "yyyy-MM-dd HH:mm:ss", example = "2020-12-01 00:00:00")
    private LocalDateTime end;
}
